package com.yssoft.controller.app.inspection;

import com.yssoft.entity.inventory.TWarehouse;
import com.yssoft.entity.sales.TSalesOrder;
import com.yssoft.service.inventory.WarehouseService;
import com.yssoft.service.sales.SaleOrderService;
import com.yssoft.utils.AppUtil;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

import java.util.List;
import java.util.Map;

/**
 * @类名称: SaleOrderController
 * @类描述: 销售订单控制器
 * @作者: 王永宁
 * @创建时间:2018年5月19日 下午2:18:50
 */
@CrossOrigin//解决跨域session问题
@Controller
@RequestMapping("/app/saleOrder")
public class SaleOrderController {
    
    @Resource
    private SaleOrderService saleOrderService;
    
    /**
     * @方法名称: getSaleOrderList
     * @功能描述: 获取销售订单列表
     * @作者: 王永宁
     * @创建时间:2018年5月19日 下午2:20:38
     * @param companyId 企业id
     * @param createTime 创建时间
     * @param stat 销售订单状态
     * @return Object
     */
    @RequestMapping(value = "getSaleOrderList",method = RequestMethod.GET)
    @ResponseBody
    public Object getSaleOrderList(int page, int limit,Integer companyId,String createTime,String stat) {
    	 if (null == companyId) {
             return AppUtil.returnMapJson("0", "查询失败，请传递企业id", null);
         } 
         try {
             List<Map<String, Object>> orderList = saleOrderService.findAll(page,limit,companyId,createTime,stat);
             return AppUtil.returnListJson("1", "查询成功!", orderList);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
         }
    }
    
    
    /**
     * @方法名称: getCustomerListByEId
     * @功能描述: 根据企业id查询客户列表
     * @作者: 王永宁
     * @创建时间:2018年5月21日 上午10:07:38
     * @param companyId 企业id
     * @param type 客户类型 1-供销商，2-客户
     * @param name 客户名称
     * @return Object
     */
    @RequestMapping(value = "getCustomerListByEId",method = RequestMethod.GET)
    @ResponseBody
    public Object getCustomerListByEId(int page, int limit,Integer companyId,String type,String name) {
    	 if (null == companyId) {
             return AppUtil.returnMapJson("0", "查询失败，请传递企业id", null);
         } 
         try {
             List<Map<String, Object>> person = saleOrderService.getCustomerListByEId(page,limit,companyId,type,name);
             return AppUtil.returnListJson("1", "查询成功!", person);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
         }
    }
    
    /**
     * @方法名称: getProductMenu
     * @功能描述: 获取商品类型目录
     * @作者: 王永宁
     * @创建时间:2018年5月21日 下午3:12:38
     * @param companyId 企业id
     * @return Object
     */
    @RequestMapping(value = "getProductMenu",method = RequestMethod.GET)
    @ResponseBody
    public Object getProductMenu(Integer companyId) {
         try {
             List<Map<String, Object>> productMenuList = saleOrderService.getProductMenu(companyId);
             return AppUtil.returnListJson("1", "查询成功!", productMenuList);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
         }
    }
    /**
     * @方法名称: getProductMenu1
     * @功能描述: 获取商品类型目录
     * @作者: 王永宁
     * @创建时间:2018年5月21日 下午3:12:38
     * @param pId 商品父类id
     * @param companyId 企业id
     * @return Object
     */
    @RequestMapping(value = "getProductMenu1",method = RequestMethod.GET)
    @ResponseBody
    public Object getProductMenu1(Integer pId,Integer companyId) {
    	try {
    		List<Map<String, Object>> productMenuList = saleOrderService.getProductMenu1(pId,companyId);
    		return AppUtil.returnListJson("1", "查询成功!", productMenuList);
    	} catch (NumberFormatException e) {
    		return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
    	}
    }
    
    /**
     * @方法名称: saveSaleOrder
     * @功能描述: 保存销售订单
     * @作者: 王永宁
     * @创建时间:2018年5月22日 上午10:54:38
     * @return Object
     */
    @RequestMapping(value = "saveSaleOrder",method = RequestMethod.POST)
    @ResponseBody
    public Object saveSaleOrder(TSalesOrder order,String ids,String moneys,String amounts,String alls) {
         try {
        	 saleOrderService.saveSaleOrder(order,ids,moneys,amounts,alls);
             return AppUtil.returnMapJson("1", "保存成功!", null);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "保存失败!"+e.getMessage(), null);
         }
    }
    
    /**
     * @方法名称: deleteSaleOrder
     * @功能描述: 删除销售订单
     * @作者: 王永宁
     * @创建时间:2018年5月21日 上午9:09:38
     * @param id 销售订单id
     */
    @RequestMapping(value = "deleteSaleOrder",method = RequestMethod.POST)
    @ResponseBody
    public Object deleteSaleOrder(Integer id) {
         try {
        	 saleOrderService.deleteSaleOrder(id);
             return AppUtil.returnMapJson("1", "删除成功!", null);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "删除失败!"+e.getMessage(), null);
         }
    }
    
    /**
     * @方法名称: queryProductDetail
     * @功能描述: 获取商品
     * @作者: 王永宁
     * @创建时间:2018年5月21日 上午9:09:38
     * @param id 商品类型id
     */
    @RequestMapping(value = "queryProductDetail",method = RequestMethod.POST)
    @ResponseBody
    public Object queryProductDetail(Integer id,int page,int limit,String name,Integer companyId) {
         try {
        	 List<Map<String, Object>>pictureList=saleOrderService.queryProductDetail(id,page,limit,name,companyId);
             return AppUtil.returnListJson("1", "查询成功!", pictureList);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
         }
    }
    
    
    
    /**
     * @方法名称: getOne
     * @功能描述: 根据销售订单获取一条记录
     * @作者: 王永宁
     * @创建时间:2018年5月22日 下午1:12:38
     * @param id 销售订单id
     * @return Object
     */
    @RequestMapping(value = "getOne",method = RequestMethod.GET)
    @ResponseBody
    public Object getOne(Integer id) {
         try {
             Map<String, Object> saleOrder = saleOrderService.getOne(id);
             return AppUtil.returnMapJson("1", "查询成功!", saleOrder);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
         }
    }
 
}
